Collecting pillow
Downloading Pillow-9.4.0-cp37-cp37m-manylinux_2_28_x86_64.whl (3.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 57.2 MB/s eta 0:00:00a 0:00:01
Installing collected packages: pillow
Successfully installed pillow-9.4.0
import requests
from PIL import Image
-
예제1
url= 'https://stat.jbnu.ac.kr/sites/stat/images/intro_about_02.jpg'
Image.open (Image.io.BytesIO(requests.get(url).content))
-
예제2
url1 = 'https://github.com/guebin/IP2022/blob/master/_notebooks/2022-05-07-stop1.jpeg?raw=true'
url2 = 'https://github.com/guebin/IP2022/blob/master/_notebooks/2022-05-07-stop2.png?raw=true'
Image.open (Image.io.BytesIO(requests.get(url1).content))
Image.open (Image.io.BytesIO(requests.get(url2).content))
클래스 사용법
-
클래스를 선언
class STOOOP:
title= "학교폭력"
url= url1
end= "멈춰~~~~"
def stop(self ):
print (self .title)
display(Image.open (Image.io.BytesIO(requests.get(self .url).content)))
print (self .end)
규칙1: 메소드(=class안에 정의된 함수)의 첫번째 인자는 무조건 self
규칙2: 메소드에서 class 안에 정의된 변수들(title, url, end)를 사용하려면 “self.변수이름”과 같은 형식으로 쓴다.
즉 “self.title”, “self.url”, “self.end”와 같은 방식으로 써야한다.
참고: 규칙2에서 가끔 self의 자리에 “STOOOP.title”, “STOOOP.url”, “STOOOP.end”와 같이 클래스의 이름으로 쓰기도 한다.
-
클래스 사용에서
-
(예시1) STOOOP 클래스 -> school instance를 만드는 과정
-
(예시2) STOOOP 클래스 -> kospi 인스턴스를 만듬
클래스의 성능
-
성능1: 클래스에서 인스터스를 생성
school = STOOOP()
kospi = STOOOP()
함수의 사용법과 비슷하다.
클래스 이름을 쓰고 콘텐츠를 구체화 하는 과정에서 필요한 입력1, 입력2를 ()에 넣는다. 이때는 STOOOP(입력1, 입력2)와 같이 생성
위의 예시는 따로 입력이 없으므로 비워둔 상태임. 즉 STOOOP()와 같은 식으로 생성.
-
성능2: 클래스에서 만들어진 인스턴스는 그 내부에 변수를 따로 가지고 있는데, 그것을 독립적으로 출력 혹은 변경할 수 있다.
kospi.title = '코스피하락' #변경
-
성능3: 클래스에서 만들어진 인스턴스는 그 내부에 자체적인 함수를 가지는데, 이것을 사용할 수 있다.
연습문제
문제1 아래의 클래스를 구현하라.
-
클래스내에는 변수 a가 있고, 변수 a의 초기값은 True이다.
-
클래스에는 show()라는 메소드가 있는데, a의 값을 출력하는 기능을 한다.
(풀이)
class Klass1:
a = True
def show(self ):
print (self .a)
문제2 아래의 클래스를 구현하라.
-
클래스내에는 변수 a가 있고, 변수 a의 초기값은 1이다.
-
클래스에는 up()라는 메소드가 있는데, a의 값을 1증가시키는 기능을 한다.
(풀이)
class Klass2:
a= 1
def up(self ):
self .a = self .a + 1
ex2.up()
ex2.up()
ex2.up()
ex2.up()
ex2.a
문제3 아래의 클래스를 구현하라.
-
클래스내에는 변수 a가 있고, 변수 a의 초기값은 0이다.
-
클래스에는 up(),down(), show()라는 메소드가 있는데, 각각은 a의 값을 1증가시키고, 1감소시키고, a의 값을 출력하는 기능을 한다.
(풀이)
class Klass3:
a= 0
def up(self ):
self .a= self .a+ 1
def down(self ):
self .a= self .a- 1
def show(self ):
print (self .a)
문제4 아래의 클래스를 구현하라.
-
클래스내에는 변수 url이 있고, 초기값은 url1이다.
url1:’https://github.com/guebin/IP2022/blob/master/_notebooks/2022-05-07-stop1.jpeg?raw=true’
-
클래스에는 show()라는 메소드를 가지는데, 아래와 같은 기능을 한다. - 기능1: url의 그림을 출력 - 기능2: ‘당신은 이 그림을 \(n\) 번 보았습니다.’ 출력.\(n\) 은 그림을 본 횟수
'https://github.com/guebin/IP2022/blob/master/_notebooks/2022-05-07-stop1.jpeg?raw=true'
(풀이)
class Klass4:
n = 1
url = 'https://github.com/guebin/IP2022/blob/master/_notebooks/2022-05-07-stop1.jpeg?raw=true'
def show(self ):
display(Image.open (Image.io.BytesIO(requests.get(self .url).content)))
print ("당신은 이 이미지를 {} 번 보았습니다" .format (self .n))
self .n = self .n+ 1
숙제
np.random.choice(["가위" ,"바위" ,"보" ])
class homework:
def show(self ):
self .work= np.random.choice(["가위" ,"바위" ,"보" ])
print (self .work)